<?php

require 'config.php';

/**
 * Connexion a la BDD
 * @global String $urlbdd  adresse de la base de données 
 * @global String $loginbdd login de la base de données
 * @global String $pwdbdd mot de passe de la base de données
 * @global String $tablebdd table de la base de données
 * @return ressource Contient la ressource de la connexion 
 */
function connexion() {
    // on se connecte à MySQL 
    global $urlbdd, $loginbdd, $pwdbdd, $tablebdd;
    $db = mysql_connect($urlbdd, $loginbdd, $pwdbdd);


// on sélectionne la base 
    $db_selected = mysql_select_db($tablebdd, $db);
    if (!$db_selected) {
        die('Impossible de sélectionner la base de données : ' . mysql_error());
    }

//si elle n'existe pas on la créé
    create_table_mot($db);

    return $db;
}

/**
 * Fermeture de la connexion à la base de données
 * @param ressource $db 
 */
function close($db) {
    mysql_close($db);
}

/**
 * Execute une requete sql
 * @param String $sql
 * @return  resource Contient la resource de la requete executée
 */
function executer($sql) {
    $q = mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
    return $q;
}

/**
 * Recupere un mot aleatoirement dans la bdd
 * @return array retourne le row contenant le mot aleatoire sous la forme d'un array associatif (id,fr,en)
 */
function getMotAleatoire() {
    $db = connexion();

// on crée la requête SQL 
    $sql = "select id,fr,en from mot where statut=1 ORDER BY rand() LIMIT 1 ;";
// on envoie la requête 
    $q = executer($sql);
    if (@mysql_num_rows($q)) {
        $mot = mysql_fetch_assoc($q);
        close($db);
        return $mot;
    } else {
        close($db);
        return null;
    }
}

/**
 * Recupere un mot dans la base de données a partir de son identifiant
 * @param string $motId
 * @return array retourne un array associatif contenant le mot  
 */
function getMot($motId) {
// on se connecte à MySQL 

    $db = connexion();

// on crée la requête SQL 
    $sql = "select * from mot WHERE id=" . mysql_escape_string($motId) . ";";
// on envoie la requête 
    $q = executer($sql);

    $mot = mysql_fetch_assoc($q);
// on ferme la connexion à mysql 
    close($db);
    return $mot;
}

/**
 * Ajout d'un mot dans la bdd (statut à 0 par defaut)
 * @param string $mot_fr mot francais
 * @param string $mot_en  mot anglais
 */
function addMotWord($mot_fr, $mot_en) {
    //insertion d'un mot
    $db = connexion();

// on crée la requête SQL 
    $sql = "INSERT INTO `mot` (`statut`, `fr`, `en`) VALUES ('0', '" . mysql_escape_string($mot_fr) . "', '" . mysql_escape_string($mot_en) . "');";
// on envoie la requête 
    $q = executer($sql);
// on ferme la connexion à mysql 
    close($db);
}

/**
 * Recupere les mots dont le statut est specifié
 * @param  string $statut Statut souhaité
 * @return resource retourne la ressource contenant les mots dont le statut a ete definit 
 */
function getStatut($statut) {
    $db = connexion();

// on crée la requête SQL 
    $sql = "select * from mot where statut='$statut' order by `fr` ASC;";
// on envoie la requête 
    $q = executer($sql);
// on ferme la connexion à mysql 
    close($db);

    return $q;
}

/**
 * Mise a jour d'un mot 
 * @param string $mot_statut Statut du mot (0 ou 1)
 * @param string $mot_fr mot en francais
 * @param string $mot_en mot en anglais
 * @param string $mot_id identifiant du mot
 * @return resource retourne la ressource contenant la requete de la mise ajour du mot 
 */
function updateMot($mot_statut, $mot_fr, $mot_en, $mot_id) {
    $db = connexion();
    $sql = "UPDATE `mot` SET `statut`=" . mysql_escape_string($mot_statut) . ", `fr`='" . mysql_escape_string($mot_fr) . "', `en`='" . mysql_escape_string($mot_en) . "' WHERE `id`=" . mysql_escape_string($mot_id) . ";";
    $q = executer($sql);
    close($db);
    return $q;
}

/**
 * Suppression d'un mot dans la bdd
 * @param string $mot_id identifiant du mot
 * @return resource Retourne la ressource de la requete de la suppression du mot 
 */
function deleteMot($mot_id) {
    $db = connexion();
    $sql = "DELETE FROM `mot` WHERE `id`=" . mysql_escape_string($mot_id) . ";";
    $q = executer($sql);

    close($db);

    return $q;
}

/* vérifier qu"une table existe */

function mysql_table_exists($table) {
    $query = "SELECT COUNT(*) FROM $table";
    $result = mysql_query($query);
    $num_rows = @mysql_num_rows($result);
    if ($num_rows)
        return TRUE;
    else
        return FALSE;
}
/**
 * Creation de la table mot
 * @param String $db Base de données
 * @return Resource resource de la requete effectuée 
 */
function create_table_mot($db) {

    $s = "CREATE TABLE IF NOT EXISTS mot ( 
            id int(10) unsigned NOT NULL auto_increment,
            statut char(1) NOT NULL default '',
            fr varchar(255) NOT NULL default '',
            en varchar(255) NOT NULL default '',
            PRIMARY KEY (id),
            KEY statut (statut));";
    $q = mysql_query($s, $db) or die('Erreur SQL !<br>' . $s . '<br>' . mysql_error());
    return $q;
}


function remove_accents($str, $charset='utf-8') {
    $str = htmlentities($str, ENT_NOQUOTES, $charset);

    $str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
    $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. '&oelig;'
    $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères

    return $str;
}
?>
